package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 sys_order
 *
 * @author ruoyi
 * @date 2024-07-24
 */
public class SysOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderNum;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateAt;

    /**
     * 客户id
     */
    @Excel(name = "客户id")
    private Long customId;

    /**
     * 客户姓名
     */
    @Excel(name = "客户姓名")
    private String customName;

    /**
     * 供应商id
     */
    private Long supplierId;

    /**
     * 产品id
     */
    @Excel(name = "产品id")
    private Long proId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String proName;

    /**
     * 产品数量
     */
    @Excel(name = "产品数量")
    private Long proQuantity;

    private Long retailList;

    /**
     * 计划工时
     */
    @Excel(name = "计划工时")
    private Long planHours;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishDate;


    /**
     * 排产状态(0未排产，1已分配供应商)
     */
    @Excel(name = "排产状态(0未排产，1已分配供应商)")
    private String productionSchedule;

    /**
     * 生产状态(0,未完成，1已完成)
     */
    @Excel(name = "生产状态(0,未完成，1已完成)")
    private String orderStatus;

    private Long taskQuantity;

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setCreateAt(Date createAt) {
        this.createAt = createAt;
    }

    public Date getCreateAt() {
        return createAt;
    }

    public void setUpdateAt(Date updateAt) {
        this.updateAt = updateAt;
    }

    public Date getUpdateAt() {
        return updateAt;
    }

    public void setCustomId(Long customId) {
        this.customId = customId;
    }

    public Long getCustomId() {
        return customId;
    }

    public void setProId(Long proId) {
        this.proId = proId;
    }

    public Long getProId() {
        return proId;
    }

    public void setProQuantity(Long proQuantity) {
        this.proQuantity = proQuantity;
    }

    public Long getProQuantity() {
        return proQuantity;
    }

    public void setProductionSchedule(String productionSchedule) {
        this.productionSchedule = productionSchedule;
    }

    public String getProductionSchedule() {
        return productionSchedule;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Long getRetailList() {
        return retailList;
    }

    public void setRetailList(Long retailList) {
        this.retailList = retailList;
    }

    public Long getTaskQuantity() {
        return taskQuantity;
    }

    public void setTaskQuantity(Long taskQuantity) {
        this.taskQuantity = taskQuantity;
    }

    public Date getFinishDate() {
        return finishDate;
    }

    public void setFinishDate(Date finishDate) {
        this.finishDate = finishDate;
    }

    public Long getPlanHours() {
        return planHours;
    }

    public void setPlanHours(Long planHours) {
        this.planHours = planHours;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("orderId", getOrderId())
                .append("orderNum", getOrderNum())
                .append("supplierId", getSupplierId())
                .append("createAt", getCreateAt())
                .append("updateAt", getUpdateAt())
                .append("customId", getCustomId())
                .append("customName", getCustomName())
                .append("proId", getProId())
                .append("proName", getProName())
                .append("proQuantity", getProQuantity())
                .append("productionSchedule", getProductionSchedule())
                .append("orderStatus", getOrderStatus())
                .append("retailList", getRetailList())
                .append("taskQuantity", getTaskQuantity())
                .append("planHours", getPlanHours())
                .append("finishDate", getFinishDate())
                .toString();
    }
}
